home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 010 / hangman.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1984-04-24  |  3.6 KB  |  99 lines

  1. 100  'hangman
  2. 110  READ NO.WORDS:WORDS.LEFT = NO.WORDS
  3. 120  CLS:KEY OFF:WIDTH 80:OPTION BASE 1
  4. 130  ALPHA$="abcdefghijklmnopqrstuvwxyz":DIM ALPHA(26),WORDS(NO.WORDS),A$(14)
  5. 140  PRINT TAB(36)"Hangman":GOSUB 1000
  6. 170  LOCATE 7,35:PRINT "Care to flirt with the hangmans' noose?"
  7. 180  GOSUB 900
  8. 220  LOCATE 9,35:INPUT "Like our friend here....." ;A$:IF A$="n"THEN CLS:END
  9. 230  'play a game
  10. 240  CLS
  11. 250  GOSUB 500:GOSUB 800
  12. 260  GOSUB 600:LOCATE 22,1:PRINT SPC(79):LOCATE 22,1:INPUT "Your guess -> ",A$
  13. 270  A=INSTR(ALPHA$,A$):IF A<1 OR A>26 OR A$="" THEN LOCATE 21,1:PRINT SPC(79):LOCATE 21,1:PRINT "Invalid selection, please try again.":GOTO 260
  14. 280  IF ALPHA(A) <> 0 THEN LOCATE 21,1:PRINT SPC(79):LOCATE 21,1:PRINT "You have already selected ";A$;" please try again.":GOTO 260
  15. 290  ALPHA(A) = 1:IF INSTR(WORD$,A$) <> 0 THEN GOSUB 370 ELSE LOCATE 21,1:PRINT SPC(79):LOCATE 21,1:PRINT "No "A$" in the word.":GUESSES = GUESSES - 1
  16. 300  IF RIGHT = L THEN 310 ELSE IF GUESSES > 0 THEN 260 ELSE GOSUB 900
  17. 305  LOCATE 21,1:PRINT SPC(79):LOCATE 21,1:PRINT "You are hung!":GAMES.LOST = GAMES.LOST +1:GOTO 320
  18. 310  LOCATE 21,1:PRINT SPC(79):LOCATE 21,1:PRINT "You guessed the word!":GAMES.WON = GAMES.WON + 1
  19. 320  FOR I = 1 TO L:COLOR 11:LOCATE 16,11+(5*I):PRINT MID$(WORD$,I,1):COLOR 7:NEXT
  20. 321  FOR I = 1 TO 300:A$=INKEY$:NEXT
  21. 325  LOCATE 22,1:PRINT SPC(79):LOCATE 22,1:INPUT "Again (y/n)";A$:IF A$ = "y" THEN GOTO 240
  22. 330  CLS:PRINT "You won "GAMES.WON" games out of "GAMES.WON+GAMES.LOST".":PRINT:PRINT "This game written by Terry Davis ":PRINT:PRINT "CIS 70040,1162":END
  23. 370  'found a match
  24. 380  LOCATE 21,1:PRINT SPC(79):LOCATE 21,1:PRINT "Yes - that is correct. "
  25. 390  FOR I = 1 TO L:K = INSTR(I,WORD$,A$):IF K = 0 THEN 397 ELSE RIGHT = RIGHT + 1
  26. 395  COLOR 11:LOCATE 16,11+(5*K):PRINT A$ :COLOR 7:I = K
  27. 397  NEXT :RETURN
  28. 500  'set up for a new game
  29. 510  GUESSES = 11:RIGHT = 0
  30. 520  FOR I = 1 TO 26:ALPHA (I) = 0:NEXT
  31. 530  RETURN
  32. 540  '
  33. 600  'update display
  34. 610  LOCATE 5,35:PRINT "Number of guesses left -> "GUESSES
  35. 620  LOCATE 7,35:PRINT "Letters already used.
  36. 630  LOCATE 9,35
  37. 640  FOR I = 0 TO 25 STEP 13
  38. 650      FOR K = 1 TO 13
  39. 660              IF ALPHA(I+K) <> 0 THEN COLOR  9 ELSE COLOR  7
  40. 670              PRINT MID$(ALPHA$,I+K,1);:COLOR 7:PRINT "  ";
  41. 680     NEXT K
  42. 690     LOCATE 11,35
  43. 700  NEXT I
  44. 760  LOCATE 13,15:PRINT A$(14)
  45. 780  ON GUESSES+1 GOTO 781,782,783,784,785,786,787,788,789,790,791,792
  46. 781  GOSUB 900
  47. 782  LOCATE 11,17:PRINT A$(1):RETURN
  48. 783  LOCATE 10,17:PRINT A$(2):RETURN
  49. 784  LOCATE 9 ,17:PRINT A$(3):RETURN
  50. 785  LOCATE 8 ,17:PRINT A$(4):RETURN
  51. 786  LOCATE 6 ,15:PRINT A$(7):RETURN
  52. 787  LOCATE 7 ,15:PRINT A$(8):RETURN
  53. 788  LOCATE 8 ,15:PRINT A$(9):RETURN
  54. 789  LOCATE 9 ,15:PRINT A$(10):RETURN
  55. 790  LOCATE 10,15:PRINT A$(11):RETURN
  56. 791  LOCATE 11,15:PRINT A$(12):RETURN
  57. 792  LOCATE 12,15:PRINT A$(13):RETURN
  58. 800  'select a word
  59. 810  WORDS.LEFT = WORDS.LEFT - 1:IF WORDS.LEFT < 0 THEN LOCATE 22,1:PRINT "All out of new words!":END
  60. 820  RESTORE:READ NO.WORDS:RANDOMIZE VAL(RIGHT$(TIME$,2)):WORD = INT(RND*NO.WORDS+1):IF WORD < 1 OR WORDS(WORD) = 1 THEN 820
  61. 830  FOR I = 1 TO WORD:READ WORD$:NEXT
  62. 840  L = LEN(WORD$):WORDS(WORD)=1
  63. 850  FOR I = 1 TO L:LOCATE 17,10+(5*I):PRINT "___";:NEXT:RETURN
  64. 900  'hang him
  65. 910  LOCATE 6,1:FOR I=7 TO 14 :LOCATE ,15:PRINT A$(I):NEXT
  66. 920  LOCATE 8,1:FOR I=4 TO 1 STEP -1:LOCATE ,17:PRINT A$(I):NEXT
  67. 930  BEEP:FOR K = 1 TO 1000:NEXT
  68. 940  FOR I=0 TO 2:LOCATE 8,17:FOR K = 4 +I TO 1 STEP -1:LOCATE ,17:PRINT A$(K):NEXT:FOR J = 1 TO 250:NEXT J,I
  69. 950  SOUND 50,15:RETURN
  70. 1000  'the figures used
  71. 1010  A$(7)= "    IMMMMM; "
  72. 1020  A$(8)= "    0 : "
  73. 1030  A$(9)= "          : "
  74. 1040  A$(10)="          : "
  75. 1050  A$(11)="          : "
  76. 1060  A$(12)="          : "
  77. 1070  A$(13)="IMMMMMMMMM9 "
  78. 1080  A$(14)=":         : "
  79. 1085  A$(6)="  |  "
  80. 1090  A$(5)="  |  "
  81. 1100  A$(4)="  O  "
  82. 1110  A$(3)="\/K\/"
  83. 1120  A$(2)=" / \ "
  84. 1130  A$(1)=" \ / "
  85. 1135  RETURN
  86. 2000  GOTO 1140
  87. 5000  'word list
  88. 5010  DATA 72 :'number of words
  89. 5020  DATA computer,byte,program,ewe,telephone,cigarette,gravity,physics
  90. 5030  DATA cabinet,coast,cassette,disk,graph,slough,printer,gnu
  91. 5040  DATA incest,manual,twist,ashes,concern,stereo,humidity,white
  92. 5050  DATA window,obsolete,tennis,court,paper,fart,taxes,magazine
  93. 5060  DATA operate,air,yoyo,defy,aspect,marathon,florid,stamp
  94. 5070  DATA mortal,renig,appogee,peripheral,plague,torso,knob,regular
  95. 5080  DATA innocent,scourge,jam,jaguar,hula,humus,guess,feat,enigma
  96. 5090  DATA mystery,ovary,plea,pummel,rye,stacatto,observe,species
  97. 5100  DATA xylophone,zenith,asteroid,trachea,trilobote,yak,xebec,yeoman
  98. 9999  'THIS PROGRAM UPLOADED ON 09/28/82 23:23 TERRY DAVIS WAITE PARK MN
  99.